For a receiver detecting data loaded in spread spectrum signal transmitted in a GNSS (Global Navigation Satellite System) such as GPS, GLONASS, GALILEO system and the like, there are three domains should be considered: visible satellite ID, Doppler frequency, and code phase. In a cold start state, such as in the beginning when the receiver starts to work, the visible satellite ID, the recent Doppler frequency and the code phase are all unknown. Accordingly, it is necessary to try each possible combination of these three domains. One combination of a specific satellite ID, a specific Doppler frequency, and a specific code phase is referred to a “hypothesis”. For a satellite SVx, if there are M possible Doppler frequencies DF0, DF1, . . . DFm−1, and N code phases CP0, CP1, . . . CPn−1 to be tried, then there are M×N hypotheses, as shown in FIG. 1. As can be deduced, when there are X satellites SV0, SV1, . . . , SVx−1, the total number of hypotheses will be X×M×N, as shown in FIG. 2. In the worst case, X×M×N correlation trials should be done to acquire a specific GPS signal. In some applications, a half or a quarter chip code spacing is necessary to achieve higher tracking accuracy. Therefore, an extra factor P is introduced. When the chip code spacing is half chip, P=2; when the chip code spacing is one fourth chip, P=4. The rest can be deduced accordingly. Then the total hypothesis number is X×M×N×P.
The most intuitive method is to try all the hypotheses one by one if only one correlator is available in the receiver. If two correlators are available, then two hypotheses can be tried at the same time. Accordingly, the speed can be double. As can be understood, if the speed is to be considerably lifted, a great number of correlators are needed. This causes increases in cost and hardware complexity.
For a GNSS signal, the chipping rate of pseudo-random code is 1.023 MHz, and the period thereof is 1023 chips, which is 1 millisecond. Therefore, a correlator having 1023 pairs of multipliers and adders (each pair has a single multiplier and a single adder) is needed to correlate the received signal if the clock rate of the correlator is only 1 kHz. The searching rate is one hypothesis per millisecond. However, such a correlator, which has 1023 pairs of multipliers and adders, is too complex. In addition, the clock rate of 1 kHz is too slow in practice. The scale of the correlator can be reduced by increasing the clock rate to achieve the same effect. For example, if 33 kHz clock rate is used, then only 31 pairs of multipliers and adders are required.
As described above, the hardware complexity can be reduced by increasing the clock rate, but the hypothesis searching rate is still one hypothesis per millisecond. There are 1023 hypotheses in code phase domain for a specific satellite and a specific Doppler frequency. If the clock rate is further raised to 33 kHz×1023=33.759 MHz, then all code phase hypotheses for the satellite and the specific Doppler frequency can be tried in one millisecond. In some applications, higher accuracy is required, so that half chip spacing, for example, is necessary. Then there are 2046 hypotheses are to be tried in the code phase domain for a specific satellite and a specific Doppler frequency. Accordingly, the clock rate can be further raised to 33.759 MHz×2=67.518 MHz, and 2046 hypotheses are tried in one millisecond. As the clock rate increasing, additional memory capacity is required. However, this is not a big problem because a memory is low-cost in comparison with a multiplier and adder. In addition to increasing clock rate, it is necessary to properly arrange multiplexing of the searching capability for the respective domains so as to be adapted to various application conditions.
In some GNSS systems such as European GNSS system GALILEO, two signal channels, defined as a pilot channel and a data channel, are transmitted from each satellite. The pilot channel is dataless. That is, no data message for navigation is carried in the pilot channel. The navigation data is carried in the data channel. A signal transmitted via the pilot channel is called “a pilot signal”, which is known for a receiver. By using the pilot signal as assistance information, long coherent integration time of the order of seconds can be attained to achieve higher tracking accuracy.